//
//  LDSCollectionReusableViewModel.m
//  LDSMVVMBase
//
//  Created by kai_leedarson on 2017/10/9.
//  Copyright © 2017年 maple_leedarson. All rights reserved.
//

#import "LDSCollectionReusableViewModel.h"

@implementation LDSCollectionReusableViewModel

- (LDSBaseCollectionReusableView *)reusableView {
    if (_viewClass && [_viewClass isSubclassOfClass:[LDSBaseCollectionReusableView class]]) {
        NSString *identifier = [NSString stringWithFormat:@"reusableView%@:<%@>",_isfootView?@"footView":@"headView",NSStringFromClass(_viewClass)];
        LDSBaseCollectionReusableView *reusableView = nil;
        if (_collectionView) {
            [_collectionView registerClass:_viewClass forSupplementaryViewOfKind:_isfootView ?UICollectionElementKindSectionFooter: UICollectionElementKindSectionHeader withReuseIdentifier:identifier];
            reusableView =  [_collectionView dequeueReusableSupplementaryViewOfKind:_isfootView ?UICollectionElementKindSectionFooter: UICollectionElementKindSectionHeader withReuseIdentifier:identifier forIndexPath:_indexPath];
        }
        return reusableView;
    }
    return nil;
}



+ (LDSCollectionReusableViewModel *)modelWithClass:(Class)vClass model:(id)model {
      return [LDSCollectionReusableViewModel modelWithClass:vClass model:model tag:-1];
    
}

+ (LDSCollectionReusableViewModel *)modelWithClass:(Class)vClass
                                             model:(id)model
                                               tag:(NSInteger)tag {
    LDSCollectionReusableViewModel *vModel = [[LDSCollectionReusableViewModel alloc] init];
    if (vClass) {
        [vModel setViewClass:vClass];
        [vModel setModel:model];
        [vModel setTag:tag];
    }
    return vModel;
}
@end
